home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / TDE200.ARJ / TDE.DOC < prev    next >
Text File  |  1992-06-05  |  53KB  |  1,198 lines

  1.  
  2.                       tde, the Thomson-Davis Editor
  3.                                Version 2.0
  4.                               June 5, 1992
  5.                                Frank Davis
  6.  
  7.  
  8. Description:
  9.  
  10.    tde is a simple, public domain, multi-file/multi-window text editor
  11.    written for IBM PCs and close compatibles.  It is suitable for editing
  12.    batch files, text files, and various computer language source code
  13.    files.  The only limit on the number and size of files that tde can
  14.    handle is the amount of conventional memory.  Likewise, the only limit
  15.    on the number of windows is the amount of conventional memory.  There
  16.    is no preset maximum number of files or windows that may be open at any
  17.    one time.
  18.  
  19.  
  20. Introduction:
  21.  
  22.    I work with data files, computer source code, and output files quite a
  23.    bit.  Most of the features in tde are related, in some way, to handling
  24.    those types of files.  The various window and cursor commands in tde
  25.    are really nice for comparing and editing source code or output files.
  26.    A good collection of block commands is available for use on source code
  27.    and formatted data files.  For what little word processing I do, tde
  28.    has a few simple commands for formatting text and paragraphs.  In
  29.    short, tde contains most of the features that I use most of the time in
  30.    an easy to use, easy to remember, and easy to configure editor.  I hope
  31.    you find tde as easy to use for most of your routine editing as me.
  32.  
  33.  
  34. Usage:
  35.  
  36.   At the command line type:
  37.  
  38.         tde [file name(s)]
  39.  
  40.   For example:
  41.  
  42.         tde
  43.         tde foo.bar
  44.         tde c:\c60\tde\main.c
  45.         tde *.c  \qc25\tde\*.h
  46.         tde foo.bar  foobar  f*  foo.*  f??b??
  47.  
  48.   If you don't enter a file name at the command line, tde will prompt you
  49.   for a file name.  If the file does not exist, tde starts out with an
  50.   empty file with the file name you just entered.
  51.  
  52.   tde will handle files as large 465k.  If you try to edit a file larger
  53.   than 465k, only the first portion of the file is loaded into tde.  With
  54.   DOS 5.0, you can edit files as large as 515k if you load DOS high.  tde
  55.   will handle lines as long as 1040 characters.  Only the first 1040
  56.   characters of long lines are handled.
  57.  
  58.  
  59. What's new:
  60.  
  61.                    New features in tde 2.0 include :
  62.  
  63.          DateTimeStamp                           = ^2 or Control-@ sign
  64.          SortBoxBlock, ascending or descending   = @S
  65.          ToggleSmartTabs                         = @Tab
  66.          Dynamic left margin for writers         = @V
  67.          Pause, useful with macros               = ^P
  68.          Recursive macros
  69.          Support for Control-Break to stop recursive macros,
  70.               sorting, search/replacing, some block operations,
  71.               formatting text or paragraph, and printing.
  72.          Support for lines as long as 1040 characters.
  73.          Improved undo buffer management.  There is now room for
  74.               the last 10 by 1040  or  130 by 80 deleted lines.
  75.          Gathered all prompts into one header file to aid translation
  76.               of prompts and documentation into other languages.
  77.          Configuration file, option 6 in tdecfg.exe.
  78.  
  79.  
  80.   The date-time stamp was added to tde because some users talk with field
  81.   units over the phone and the event needs to be date and time stamped.
  82.   Users may customize the date to local preferences, eg MM-DD-YY or
  83.   DD-MM-YY.  The time stamp may use either 12 hour or 24 hour form.
  84.  
  85.   Every once in a while, I need to sort data, names, etc..., in some of my
  86.   files.  The SortBoxBlock function was added to sort lines according to
  87.   the keys in a box block.  The keys may be sorted ascending or
  88.   descending, while the IGNORE/MATCH toggle determines whether case is
  89.   significant.  To sort multiple columns, start the sort with the least
  90.   significant key first.
  91.  
  92.   To help users construct tables and formatted data files, a Smart Tab
  93.   toggle was added.  A smart tab is determined by looking for the first
  94.   previous non-blank line above the cursor and then searching for the
  95.   beginning of the next word at the column of the cursor.  Smart tabs are
  96.   useful for building tables and formatted data sets.  After giving smart
  97.   tabs a try my ownself, I hardly ever use fixed tabs any more.
  98.  
  99.   As more people begin to use tde as a simple word processor, a new
  100.   feature was added to help create simple documents.  The left margin may
  101.   now be determined by the indentation of the current line when in Dynamic
  102.   Wrap mode.  This comes in really handy for those who need special
  103.   paragraph indentation.  Users don't have to keep setting the left margin
  104.   every time the left margin is changed; tde sets the margin automatically
  105.   to the indentation of the current line.
  106.  
  107.   A few features were added to the macro functions.  A pause function was
  108.   added, so users can watch a recursive macro execute and stop the macro
  109.   at their convenience.  When a macro is paused, press any key to continue
  110.   or press ESC to halt the macro.  Now, recursive macros may be defined.
  111.   I often need to delete certain lines from a file until the eof is
  112.   reached.  See the Macro section later in this file for info on creating
  113.   a really neat recursive macro.  Even if you can't stand tde, just try
  114.   the neat macro.  It's the most unique macro I've ever seen.
  115.  
  116.   I also wrote a handler for the Control-Break interrupt, 0x1B.  On IBM
  117.   compatible PCs, the Control-Break key generates an interrupt via
  118.   hardware.  By writing a Control-Break interrupt handler, a user can
  119.   immediately gain control of a run-a-way recursive macro, printing job,
  120.   most box block operations, expanding tabs, trimming space from line
  121.   blocks, formatting a paragraph or text, search/replace, or a sort
  122.   operation.  Although one may trap Control-C, which is a software
  123.   generated interrupt, there is no telling when the operating system will
  124.   turn control over to a Control-C handler.  One may gain immediate
  125.   control with the Control-Break key, however.
  126.  
  127.   The undo-buffer space and management was greatly enhanced.  There is now
  128.   room for over 10k of deleted text in the buffer.  Users may now get back
  129.   entire functions that may have been deleted.  There is room for 130 by
  130.   80 or 10 by 1040 character lines in the new undelete buffer.
  131.  
  132.   All of the prompts in tde were gathered into one header file to aid the
  133.   translation of documentation as well as the user prompts into other
  134.   languages.  Pierre Jelenc, pcj1@cunixf.cc.columbia.edu and a member of
  135.   the Foreign Language Education Forum (FLEFO) on CompuServe, has
  136.   translated the documentation and has created configuration files for
  137.   several languages.  If you need a non-English version of tde, contact
  138.   Pierre to find out if he has a version of tde for you.
  139.  
  140.   A configuration file was added so that users may define all function
  141.   keys, modes, and colors from a configuration file.  Users may also
  142.   define macros in the configuration file.  Those who need to assign ASCII
  143.   and Extended ASCII character to unused function keys will find this
  144.   extremely useful.  Some alphabets need letters with all kinds of accent
  145.   marks.
  146.  
  147.  
  148.                    New features in tde 1.5 include :
  149.  
  150.                     Ruler                     = @R
  151.                     Block trim trailing       = @T
  152.                     User defined macros:
  153.                        Record macro           = @F3
  154.                        Save macros to file    = #F1
  155.                        Load macros from file  = #F3
  156.                        Clear macro buffer     = ^ESC
  157.                     Critical error handler
  158.  
  159.   If by accident you forget to put a diskette in a floppy drive and try to
  160.   save a file or if you forget to turn on the printer before printing a
  161.   block or file, a critical error occurs.  That kind of error is the
  162.   infamous Abort, Retry, Ignore thing.  A routine was written to give some
  163.   information on the kind and the location of those errors when they
  164.   occur.  The tde critical error handler gives you all kinds of info and
  165.   then prompts you for a response.  The timeout for critical errors varies
  166.   quite a bit.  Some timeouts may take a couple of minutes.
  167.  
  168.   When I "work" at the USDA, I often need to create or massage formatted
  169.   data files.  Also, a lot of engineers and scientists at the USDA program
  170.   in FORTRAN and the source code needs to be in a certain format.  When
  171.   working with those types of files, it is really useful to have a ruler
  172.   that explicitly shows which column the cursor is in.  The new ruler in
  173.   tde shows margins, column numbers, and a column pointer.
  174.  
  175.  
  176.  
  177.                    New features in tde 1.4 include :
  178.  
  179.               Split screen vertically            = F8
  180.               Number box block                   = Alt+N
  181.               Directory list                     = Alt+F1
  182.  
  183.   Also added in tdecfg was a choice of cursor styles and a switch for .bak
  184.   files.  Both of those options are in the mode section of tdecfg.
  185.  
  186.  
  187.  
  188.                           <CR><LF> or <LF> at eol
  189.  
  190.   The functions that write to files were expanded to allow you to choose
  191.   whether you want to write a <CR><LF> or just a <LF> at the end of line.
  192.   Some programs look for just the <LF> at the eol while others want the
  193.   <CR><LF> pair at the eol.  tde has no trouble reading either style but
  194.   allows you to specify the output style.  You may change the style by
  195.   pressing the ToggleCRLF function key or by using tdecfg to set the
  196.   default.  Here's a little diagram that may help explain the new
  197.   functions better than I can write.
  198.  
  199.  
  200.                                                             Output
  201.         Input        tde's internal representation          Toggle
  202.  
  203.          files       ┌────────────────────────────┐          files
  204.          with        │ tde will read files with   │          with
  205.        <CR><LF> ====>│ lines that terminate in    │ =====> <CR><LF>
  206.         at eol       │ either <CR><LF> or <LF>.   │         at eol
  207.                      │                            │
  208.                      │                            │
  209.          files       │ Internally, all lines end  │          files
  210.          with        │ with the <LF> character.   │          with
  211.          <LF>  =====>│                            │ =====>   <LF>
  212.         at eol       └────────────────────────────┘         at eol
  213.  
  214.  
  215.  
  216.  
  217. Editor fields and information lines:
  218.  
  219.  
  220.                                Sample tde screen
  221.  
  222.  
  223.          ┌─── File number - each window opened to same file has same number
  224.          │ ┌─── Window letter
  225.          │ │
  226.          │ │    ┌─── Dirty file indicater - asterisk
  227.          │ │    │ ┌─── File name
  228.          │ │    │ │                    ┌──── File attributes
  229.          │ │    │ │                    │    ┌──── Total number of lines in file
  230.          │ │    │ │                    │    │                  ┌─── line:column
  231.                                                          
  232.       ┌──────────────────────────────────────────────────────────────┐
  233.       │    The first line on the screen contains file information    │
  234.       ├──────────────────────────────────────────────────────────────┤
  235.       │........1.....   Optional ruler line    ......5........6..│
  236.       ├──────────────────────────────────────────────────────────────┤
  237.       │                                                              │
  238.       │                                                              │
  239.       │                          File area                           │
  240.       │                                                              │
  241.       │                                                              │
  242.       │                                                              │
  243.       ├──────────────────────────────────────────────────────────────┤
  244.       │                 Editor modes and information                 │
  245.       └──────────────────────────────────────────────────────────────┘
  246.                                                          Insert
  247.         │   │    │    │    │    │    │     │     │     │    │     └─ Overwrite
  248.         │   │    │    │    │    │    │     │     │     │    └───── ^Z at eof?
  249.         │   │    │    │    │    │    │     │     │     └───── trim trailing
  250.         │   │    │    │    │    │    │     │     │     space at eol, T = TRUE
  251.         │   │    │    │    │    │    │     │     │
  252.         │   │    │    │    │    │    │     │     └───── CRLF or LF at eol?
  253.         │   │    │    │    │    │    │     └───── word wrap indicator
  254.         │   │    │    │    │    │    └───── Sync cursor in all windows?
  255.         │   │    │    │    │    └───── Ignore / Match search case?
  256.         │   │    │    │    └───── Indent mode?
  257.         │   │    │    └─────  Smart tab mode?
  258.         │   │    └───── Available memory for editing files
  259.         │   └───── Total number of windows, including hidden windows
  260.         └───── Total number of open files
  261.  
  262.  
  263.  
  264. Multiple keys:
  265.  
  266.   I use the following abbreviated key definitions throughout this file:
  267.  
  268.                 ^ = Control       # = Shift       @ = Alt
  269.  
  270.   For example, ^F5 means press and hold the Control key and then press F5
  271.   while holding down the Control key.
  272.  
  273.  
  274. Cursor movement:
  275.  
  276.                             101 Keyboard overview
  277.  
  278.             Cursor keys                               Keypad keys
  279.         ┌─────┬─────┬─────┐                ┌───────┬───────┬───────┬───────┐
  280.         │ Ins │Home │PgUp │                │NumLock│Grey / │Grey * │Grey - │
  281.         ├─────┼─────┼─────┤                ├───────┼───────┼───────┼───────┤
  282.         │ Del │ End │PgDn │                │ Home  │  Up   │ Pg Up │ Grey  │
  283.         └─────┴─────┴─────┘                ├───────┼───────┼───────┤   +   │
  284.                                            │ Left  │Center │ Right │       │
  285.               ┌─────┐                      ├───────┼───────┼───────┼───────┤
  286.               │ Up  │                      │  End  │ Down  │ Pg Dn │ Grey  │
  287.         ┌─────┼─────┼─────┐                ├───────┴───────┼───────┤       │
  288.         │Left │Down │Right│                │     Ins       │  Del  │ Enter │
  289.         └─────┴─────┴─────┘                └───────────────┴───────┴───────┘
  290.  
  291.                                                           
  292.     If you like using these grey                   With Num Lock off,
  293.      cursor keys, these function               you can probably guess most
  294.       assignments are for you.                of these function assignments.
  295.  
  296.           Grey cursor keys                            Keypad keys
  297.  
  298.  Up     - move cursor up                    Home   - toggle col 1 & beg of line
  299.  Down   - move cursor down                 ^Home   - first line in window
  300.  Left   - move cursor left                  Pg Up  - page up
  301.  Right  - move cursor right                ^Pg Up  - goto first page in file
  302. ^Up     - scroll cursor up                  Center - move to center of window
  303. ^Down   - scroll cursor down               ^Center - line to center of window
  304. ^Left   - cursor to previous word           End    - last character in line
  305. ^Right  - cursor to next word              ^End    - last line in window
  306. @Up     - scroll text up                    Pg Dn  - page down
  307. @Down   - scroll text down                 ^Pg Dn  - goto last page in file
  308. @Left   - horizontal char left              Ins    - toggle insert mode
  309. @Right  - horizontal char right             Del    - delete character
  310. @PgUp   - horizontal page left             ^Del    - stream delete character
  311. @PgDn   - horizontal page right             Grey - - scroll screen up
  312. ^#Left  - horizontal char left              Grey + - scroll screen down
  313. ^#Right - horizontal char right            ^Grey - - fixed scroll screen up
  314.                                            ^Grey + - fixed scroll screen down
  315.                                             Enter - Insert line and move down
  316.                                             #Enter - 1st char in next line
  317. Note:  The Alt+Cursor keys are not          ^Enter - column 1 in next line
  318. available on 83/84 key keyboards.
  319. Pressing the Alt + a number key on
  320. the keypad generates a character code
  321. and not a cursor movement command.
  322. FYI, the Alt+keypad is the method for
  323. entering any ASCII or Extended ASCII
  324. character into the text file.
  325.  
  326.  
  327.  
  328. Function Keys:
  329.  
  330.   I tried to use some logical order when I assigned functions to the
  331.   function keys.   I use a 101 keyboard most of the time, so it should be
  332.   easy to see the logical function grouping with it.  The function keys
  333.   on a 101 keyboard are placed along the top of the keyboard.  Functions
  334.   are arranged as follows:
  335.  
  336.  
  337.         Help    File                Find  &               Window
  338.               Functions          Search/Replace          Commands
  339.          F1  F2  F3  F4          F5  F6  F7  F8          F9  F10  F11  F12
  340.  
  341.  
  342.    F1 = Instantaneous Help
  343.  
  344.   @F1 = Directory List
  345.         List the contents of a directory or matching files.  At the
  346.         prompt, press enter to list all files in the current directory or
  347.         enter any valid subdirectory name, file name, or wild card
  348.         characters.  You don't have to put a *.* at the end of a
  349.         subdirectory name; the directory list function adds those wild
  350.         card characters to subdirectory names as a default.  A '\' is
  351.         added to the end of subdirectory names in the file list.  To list
  352.         files in other directories, just move the cursor to the desired
  353.         subdirectory name and press enter.  When you see ..\ in the
  354.         directory list, the double periods represent the parent of the
  355.         current directory.  The .\ represents the current directory.  You
  356.         may move up and down the directory tree by selecting the parent or
  357.         childrens of the current directory.
  358.  
  359.  
  360. File Functions:
  361.  
  362.    F2 = Save file
  363.         Saves all changes made to file.  Existing file is overwritten by
  364.         the new file.  It does not prompt for a new file name -
  365.         automatically assumes you want to overwrite the old file.
  366.  
  367.    F3 = Quit file
  368.         Abandons any changes made in the file and closes or kicks the file
  369.         out of the current window.  If you are editing multiple files or
  370.         have multiple windows, tde searches for any invisible files to
  371.         display in the current window.  If no invisible windows are found,
  372.         tde combines windows.  If this is the only file being edited, F3
  373.         quits tde.  If you made any changes to the file, it asks you if
  374.         you want to abandon them.  You can create an invisible window when
  375.         you load in a file over the current file.  Nothing happens to the
  376.         invisible file or window - you just can't see it.
  377.  
  378.         When I added vertical windows, this routine became a LOT more
  379.         complicated.  To keep things reasonably sane, let's only close
  380.         windows that have three common edges, eg.
  381.  
  382.                         ┌──────┬──────────┐
  383.                         │      │    no    │
  384.                         │      ├─────┬────┤
  385.                         │      │yes1 │yes1│
  386.                         │  no  ├─────┴────┤
  387.                         │      │   yes2   │
  388.                         │      ├──────────┤
  389.                         │      │   yes2   │
  390.                         └──────┴──────────┘
  391.  
  392.         Windows with 'no' cannot be closed.  Windows with 'yes' can be
  393.         combined with windows that have the same yes number.
  394.  
  395.  
  396.    F4 = File (save and quit)
  397.         This function is a combination of Save and Quit (F2 & F3 above).
  398.  
  399.    #F2 = Save as
  400.         If you don't want to overwrite the original file but you want to
  401.         save the contents of the current file, you may save the file under
  402.         a different file name.  This function prompts you for a file name
  403.         to save the changes (press escape to abort).
  404.  
  405.    #F4 = Edit new file
  406.         To bring another file into the editor, use this function.  It
  407.         loads the file into the current window and previous window becomes
  408.         invisible.  You can even load several copies of the same file.  I
  409.         like this because I often need to refer back to the original
  410.         unchanged file on disk.  When I make a booboo in file, which is
  411.         quite often, I don't necessarily want to quit and start over; I
  412.         just want to get back the part that I messed up.  It is really
  413.         easy to mark the orginal text in a block and copy it to place
  414.         where I made a booboo.  Each time a file is loaded into tde, it is
  415.         treated as a different file.
  416.  
  417.    @F2 = Set file attributes
  418.         Change the attributes of a file.  Attributes are:  A = Archive,
  419.         S = System, H = Hidden, R = Read-Only.  You can change the
  420.         attributes of a file so that read-only files can be edited.  To
  421.         edit a read-only file:  1) edit the file, 2) change the file
  422.         attributes to archive, 3) save the changes made in the file, 4)
  423.         change the file attributes back to read-only.
  424.  
  425.    @F4 = Edit next file
  426.         If you type multiple file names or type wildcard characters on the
  427.         command line, press this key to bring in the next file or the next
  428.         matching file into the editor.  You may press this key at any
  429.         time.  When I use this feature, I usually split the screen and
  430.         load the next file into a window.  This feature is useful when you
  431.         need to look in several files for a piece of code or if you know
  432.         that you are going to edit several files at the same time.
  433.  
  434.  
  435. Macros:
  436.  
  437.    @F3 = Macro record
  438.         This key toggles macro record off and on.  A flashing "Recording"
  439.         is displayed in the lite bar, so it shouldn't be too difficult to
  440.         tell when record is on.  This function assigns a keystroke or a
  441.         series of keystrokes to an unused function key.  Keystrokes are
  442.         played back for some prompts.  Prompts that require the user to
  443.         input a name or pattern are played back.  Prompts that require the
  444.         user to enter a choice, "Overwrite existing file (y/n)?" for
  445.         example, are not played back.
  446.  
  447.         There is room for 1024 keystrokes in the macro buffer.  There are
  448.         no restrictions on the length of a single macro.  If you want, you
  449.         may define one macro that contains 1024 keystrokes.  When tde
  450.         terminates, all macros definitions disappear.  Macro definitions
  451.         are temporary.  If you want to reuse macros that are defined
  452.         during an editing session, they need to be saved before you exit
  453.         tde.
  454.  
  455.                              Recursive Macros
  456.  
  457.         Recursive macros are supported.  Only one level of recursion is
  458.         supported in tde.  Here's a simple example of a recursive macro:
  459.  
  460.                         Alt-F3    = turn macro record on
  461.                         Alt-5     = assign the recording to Alt-5
  462.                         Down      = move cursor down a line
  463.                         Alt-5     = call the macro we just defined
  464.                         Alt-F3    = turn macro record off
  465.  
  466.         Enter this macro and press Alt-5 to see what a recursive macro
  467.         does.  Recursive macros repeatedly execute themselves until an
  468.         error condition occurs, which usually happens when the end of file
  469.         is reached.  I often use recursive macros to delete certain lines
  470.         in a file or to rearrange the fields of a formatted data file.
  471.  
  472.         Each editor function in tde returns a code to the macro processor
  473.         that indicates whether or not an error occured.  Here are some
  474.         conditions that generate an error:  attempting to move the cursor
  475.         past the end of file or behind the start of the file, trying to
  476.         add too many characters in a line, attempting block operations
  477.         with no marked block, etc...
  478.  
  479.         One interesting phenomenon about recursive macros is that a macro
  480.         can be defined that never terminates.  The simplest
  481.         non-terminating macro definition in tde is:
  482.  
  483.                   Alt-F3  = turn macro record on
  484.                   Alt-7   = assign the recording to Alt-7
  485.                   Alt-7   = call the macro we just defined
  486.                   Alt-F3  = turn macro record off
  487.  
  488.         This a+7 macro carries out no instructions.  The only thing this
  489.         macro does is call itself.  In a perfect world, this macro will
  490.         execute forever.  There are lots of ways to create non-terminating
  491.         recursive macros.  Be creative and try creating a few non-
  492.         terminating recursive macros yourself.  With several different
  493.         sizes and shapes of horizontal and vertical windows on the screen
  494.         and with cursor sync toggled on, you can create some really neat
  495.         macros using cursor movement keys.  If you get tired of waiting
  496.         for forever, just press Control-Break to stop any macro.
  497.  
  498.                       A Really Neat Recursive Macro
  499.  
  500.         Here's a really neat recursive macro that you might try with
  501.         cursor sync turned off.  Edit a fairly large file, one with at
  502.         least a 1000 lines, and move the cursor to line 500 or the half
  503.         way point.  Then, split the screen into several vertical windows
  504.         with about 15 columns in each window , e.g.:
  505.  
  506.                 ┌───────┬───────┬────────┬───────┬───────┐
  507.                 │       │       │        │       │       │
  508.                 │       │       │        │       │       │
  509.                 │       │       │        │       │       │
  510.                 │       │       │ start  │       │       │
  511.                 │       │       │        │       │       │
  512.                 │       │       │        │       │       │
  513.                 │       │       │        │       │       │
  514.                 └───────┴───────┴────────┴───────┴───────┘
  515.  
  516.         With cursor sync turned off and macro record turned on, define a
  517.         macro that 1) moves the cursor down in one window, 2) goes to the
  518.         next window and moves the cursor up, 3) goes to the next window
  519.         and moves the cursor down, 4) when the cursor finally makes it
  520.         back to the starting window, make the macro recursive.  Suppose
  521.         the cursor is in the window labeled "start" in the sample screen
  522.         above.  Here's the way the keystrokes in this macro would be
  523.         recorded:
  524.  
  525.  
  526.                 Alt-F3    = turn macro record on
  527.                 Alt-8     = assign this macro to Alt-8
  528.                 Down      = move cursor down in "start" window
  529.                 F10       = next window
  530.                 Up        = move cursor up
  531.                 F10       = next window
  532.                 Down      = move cursor down
  533.                 F10       = next window
  534.                 Down      = move cursor down
  535.                 F10       = next window
  536.                 Up        = move cursor up
  537.                 F10       = next window - cursor is now in "start"
  538.                 Alt-8     = call the macro just defined. it's now recursive.
  539.                 Alt-F3    = turn macro record off
  540.  
  541.         Press Alt-8 and watch a really neat recursive macro.
  542.  
  543.  
  544.    #F1 = Save macro file
  545.         Saves all macro definitions to a file.  tde prompts for the macro
  546.         file name.
  547.  
  548.    #F3 = Load macro file
  549.         Prompts for a search pattern or file name.  I can never remember
  550.         macro file or path names, so this function uses a file pick list.
  551.  
  552.    ^ESC = Clear macros
  553.         Resets or clears all macros.
  554.  
  555.    ^P  = Pause
  556.         When this function is part of a macro, press any key to continue
  557.         the macro or press ESC to halt or break the macro.
  558.  
  559.  
  560. Find and Search/Replace:
  561.  
  562.    ^F5 = Toggle search case
  563.         You can toggle the case of the search flag at any time, even
  564.         after you define the search pattern.
  565.  
  566.    #F5 = find forward
  567.         To define the search pattern, use this function.  It prompts you
  568.         for the search pattern.  The pattern is defined, across files,
  569.         until changed.
  570.  
  571.    #F6 = find backward
  572.         Same as find forward except search backward in file.
  573.  
  574.    F5 = Repeat find forward
  575.         Once the search pattern has been defined (Shift F5 or Shift F6),
  576.         you can press this key at any time in any file to find the next
  577.         occurrence of pattern.  I decided to use two sets of functions to
  578.         perform searches.  Once I found a pattern, I might do some editing
  579.         and then find the next occurrence.  I hate to define the search
  580.         pattern over and over or set the search direction over and over.
  581.         This function does a wrap search - when it reaches the eof it
  582.         starts over at the beginning of the file.
  583.  
  584.    F6 = Repeat find backward
  585.         Like repeat find forward, you can press this key at anytime once
  586.         the search pattern has been defined.
  587.  
  588.    @F5 = Repeat find forward2
  589.         Like F5 except the cursor is not repositioned to the middle of the
  590.         screen.  This function is useful when working with data files.
  591.  
  592.    @F6 = Repeat find backward2
  593.         Like F6 except the cursor is not repositioned to the middle of the
  594.         screen.
  595.  
  596.    #F7 = Search/Replace forward
  597.         This function prompts you for the search pattern and the
  598.         replacement text.  If you want to match the search case, remember
  599.         to toggle the search flag, which can be done at any time.  You can
  600.         either do prompt or no prompt replacing.   Regardless of prompt or
  601.         no prompt replacing, this function actually moves the cursor to
  602.         the pattern and displays it on the screen and replaces the text.
  603.         If you are using tde on a slow machine, you can see the
  604.         search/replace taking place.  I implemented the function this way
  605.         because I just like to see what the search/replace function is
  606.         doing.  Press Control-Break to stop no prompt replacing.
  607.  
  608.    #F8 = Search/Replace backward
  609.         Same as search/replace forward except backwards.
  610.  
  611.  
  612. Window Functions:
  613.  
  614.    F8 = Split window vertically
  615.         Splits the screen at the current cursor location.  The current
  616.         file is displayed in multiple windows.  Changes to a file are
  617.         echoed in all windows opened to the same copy of that file.  You
  618.         can also see any marked blocks in the same copy of the file in
  619.         different windows.  There has to be at least 15 columns in any
  620.         window, so the number of visible windows is limited by the display
  621.         screen.
  622.  
  623.    F9 = Split window horizontally
  624.         Splits the screen at the current cursor location.  There has to be
  625.         at least 1 text line in any window, so the number of visible
  626.         windows is limited by the display screen.
  627.  
  628.    #F9 = Resize window
  629.         Sometimes there is a need to concentrate on the contents of one
  630.         window.  Use the up and down arrow keys to adjust the current
  631.         window to desired size.  Changing the size of the top window is
  632.         not allowed.
  633.  
  634.    ^F9 = Zoom window
  635.         Makes the current window fill the whole screen.  All windows
  636.         except the current window become invisible.
  637.  
  638.    F10 = Next window
  639.         If more than one window is displayed, you can press one key to
  640.         move to the next window.
  641.  
  642.    #F10 = Previous window
  643.         Move to previous window - opposite of next window.
  644.  
  645.    ^F10 = Next Hidden Window
  646.         Displays "hidden" or "invisible" windows in the same place as the
  647.         current window.  The current window then becomes invisible.
  648.  
  649.  
  650. Block Commands:
  651.  
  652.   Block operations can be done within or between files.  Operations on
  653.   line blocks that move text are carried out on the line immediately
  654.   below the cursor.  Operations on box or stream blocks that move text
  655.   begin at the column of the cursor.  Press Control-Break to stop most Box
  656.   operations.  Nearly all Line and Stream operations happen so fast that
  657.   you can't stop them once they are started.
  658.  
  659.    @B - Mark Box Block
  660.         This key is used to mark both the beginning and ending corner of
  661.         a box block.
  662.  
  663.    @L - Mark Line Block
  664.         This key is similar to the operation of the box block, but entire
  665.         lines are marked.
  666.  
  667.    @X - Mark Stream Block
  668.         All the text between the beginning and ending column, sorta like a
  669.         stream of characters, is marked.  Useful with sentences.
  670.  
  671.    @U - Unmark Block
  672.         If you make a booboo when marking blocks, press @U to unmark the
  673.         block and start over.  After certain block operations, the block
  674.         may remain marked.
  675.  
  676.    @G - Group Delete block
  677.         Sorta self explanatory.  This function deletes the text in the
  678.         marked block.
  679.  
  680.    @M - Move block
  681.         Move the cursor to the desired location and press @M to move the
  682.         marked block.  In line mode, the text is moved to the line
  683.         immediately below the cursor.  In box and stream mode, the block
  684.         is moved to the column of the cursor.
  685.  
  686.    @C - Copy block
  687.         With line blocks, the block is copied to the line below the
  688.         cursor.  With box and stream blocks, the block is copied
  689.         beginning at the column of the cursor.  If you try to copy a
  690.         Line block within itself, the block copy starts at the first
  691.         line immediately after the marked block.
  692.  
  693.    @K - Kopy block
  694.         Same as copy block except block stays marked.  It's sorta like a
  695.         poor man's cut-and-paste buffer.
  696.  
  697.    @O - Overlay block
  698.         You can only overlay Box blocks.  The original block stays marked
  699.         after the operation.
  700.  
  701.    @F - Fill box block
  702.         Fills the marked Box block with character.  This function is
  703.         useful for filling in a column of periods for tables and such.
  704.  
  705.    @N - Number box block
  706.         tde prompts you for the starting number, the increment, and
  707.         whether to left or right justify the numbers.  tde only handles
  708.         integers  -  no floating point numbers are allowed.  I felt that
  709.         there were too many things involved in real numbers, eg. number
  710.         of significant places to left of decimal, to right of decimal,
  711.         exponents, engineering form, scientific form, etc....  If you
  712.         want real numbers, just use a combination of the number box
  713.         and fill box functions.  Use the fill box function to make a
  714.         column of decimals and the number box function to number the left
  715.         and right side of the decimal.
  716.  
  717.    @P - Print block
  718.         Prints the block to the PRN device.  I haven't tried redirecting
  719.         the PRN, but it should work.  This function prompts for block or
  720.         file to print.  Press Control-Break to stop printing.
  721.  
  722.    @S - Sort box block
  723.         Lines are sorted, ascending or descending, using the contents of
  724.         the box block as the sort keys.  The Ignore/Match toggle
  725.         determines whether case of the keys is significant.  To sort
  726.         multiple columns, sort the least significant column first.  Press
  727.         Control-Break to stop.
  728.  
  729.    @W - Write block to file
  730.         Writes the marked block to a file.  tde prompts for the file
  731.         name.
  732.  
  733.    @E - Block expand tabs
  734.         Expands the tabs in the marked block, which must be a LINE block,
  735.         using the current tab setting.  Press Control-Break to stop.
  736.  
  737.    @T - Block trim trailing
  738.         Trims trailing space, if any, at the end of each line in a LINE
  739.         block.  Press Control-Break to stop.
  740.  
  741.    @< - Block upper case
  742.         Convert all lower case characters in the block to upper case.
  743.  
  744.    @> - Block lower case
  745.         Convert all upper case characters in the block to lower case.
  746.  
  747.    @? - Block strip high bit
  748.         Strip the high bit off all characters in the block.  This function
  749.         is useful when editing files produced by WordStar.
  750.  
  751.  
  752. Word Processing Commands:
  753.  
  754.    @V - toggle word wrap
  755.         Toggle word wrap between off, Fixed Wrap, and Dynamic Wrap.  In
  756.         Fixed Wrap mode, the left margin is explicitly determined by the
  757.         left margin setting.  In Dynamic Wrap mode, the left margin is
  758.         determined by the indentation of the current line.  Writers may
  759.         find the Dynamic Wrap mode easier to use.  If the cursor is
  760.         somewhere in the line, words are pushed to the next line.
  761.  
  762.         In tde, other than margins, word wrap and format paragraph or
  763.         format text have nothing to do with each other.  Word wrap is
  764.         used to push characters or the cursor to the next line when the
  765.         right margin is violated.  Format paragraph and format text can
  766.         be used at any time - they do not depend on the state of the
  767.         WordWrap flag.
  768.  
  769.   ^F6 - Set Left margin
  770.         May be set to any column equal to or greater than 1 and less than
  771.         the right margin.
  772.  
  773.   ^F7 - Set Right margin
  774.         May be set to any column greater than the left margin and less
  775.         than the maximum line length or 1040.
  776.  
  777.   ^F8 - Set Paragraph margin
  778.         The paragraph margin may be set to any column less than the right
  779.         margin.
  780.  
  781.   @F7 - format paragraph
  782.         Text is formatted from the beginning of the paragraph according
  783.         to the current left, right, and paragraph margins.  If the cursor
  784.         is not on the beginning line of a paragraph, tde searches for
  785.         start of the paragraph and formatting starts there.  The entire
  786.         paragraph is formatted according to the margins.
  787.  
  788.   ^B - Format Text
  789.         Text is formatted from the cursor onward.  This function does not
  790.         search for the beginning of the paragraph to start the format.
  791.  
  792.   @F8 - Left justify
  793.         Beginning of current line is adjusted to start at left margin
  794.  
  795.   @F9 - Right justify
  796.         End of current line is adjusted so it ends at the right margin
  797.  
  798.  @F10 - Center justify
  799.         Current line is centered between the left and right margins.
  800.  
  801.  
  802. Other keys:
  803.  
  804.    Enter
  805.         Insert a newline at the cursor.  If the cursor is in the middle of
  806.         a line, the line is split at the cursor.  Indentation is matched
  807.         if the editor is in the Indent mode.
  808.  
  809.    #Enter
  810.         Move the cursor down a line.  The cursor is placed on the first
  811.         non-blank character in the next line.  No lines are added to the
  812.         file.
  813.  
  814.    ^Enter
  815.         Move the cursor down a line.  The cursor is placed on column 1 in
  816.         the next line.  No lines are added to the file.
  817.  
  818.    Up (arrow)
  819.         Move cursor up.
  820.  
  821.    Down (arrow)
  822.         Move cursor down.
  823.  
  824.    Left (arrow)
  825.         Move cursor left.
  826.  
  827.    Right (arrow)
  828.         Move cursor right.
  829.  
  830.    Home
  831.         Toggles between the first non-blank character and column zero.
  832.  
  833.    End
  834.         Move cursor to the end of line character.
  835.  
  836.    Page Up
  837.         Move cursor up one page.
  838.  
  839.    Page Down
  840.         Move cursor down one page.
  841.  
  842.    ^Right
  843.         Move cursor one word right.
  844.  
  845.    ^Left
  846.         Move cursor one word left.
  847.  
  848.    ^#Right   (Control+Shift+Right)
  849.         Pan the screen one character to the right.
  850.  
  851.    ^#Left    (Control+Shift+Left)
  852.         Pan the screen one character to the left.
  853.                                                 
  854.    ^Home
  855.         Move cursor to first line on screen.
  856.  
  857.    ^End
  858.         Move cursor to last line on screen.
  859.  
  860.    ^Page Up
  861.         Move cursor to first page in file.
  862.  
  863.    ^Page Down
  864.         Move cursor to last page in file.
  865.  
  866.    Zip to line
  867.         Move to line number.  tde prompts for line number.  Press Escape
  868.         to abort.
  869.  
  870.    Center
  871.         The cursor is moved to the center of the current window.
  872.  
  873.   ^Center
  874.         The line the cursor is on is moved to the center of the current
  875.         window.
  876.  
  877.    Grey -  (on the key pad) or
  878.    ^Down
  879.         Scroll window up with cursor staying on same line in file.
  880.  
  881.    Grey +  (on the key pad) or
  882.    ^Up
  883.         Scroll window down with cursor staying on same line in file.
  884.  
  885.   @Grey Up (the arrow in the cursor/control cluster) or
  886.   ^Grey -  (grey - on keypad)
  887.         Cursor stays on same line of the screen as the file scrolls up.
  888.  
  889.   @Grey Down (the arrow in the cursor/control cluster) or
  890.   ^Grey +  (grey + on keypad)
  891.         Cursor stays on same line of the screen as the file scrolls down.
  892.  
  893.   @Grey PgUp
  894.         Horizontal page left.
  895.  
  896.   @Grey PgDn
  897.         Horizontal page right.
  898.  
  899.    ESC - undo line
  900.         Get back the original unchanged line.  When cursor is moved off a
  901.         line, all changes to the file are made and there is no way to get
  902.         back the contents of a line.
  903.  
  904.    Del
  905.         Delete the character, if any, under the cursor.
  906.  
  907.    ^Del
  908.         Delete the characters in the file as if they were a stream.
  909.         Lines will be joined at the cursor and eventually every
  910.         character in the file may be deleted.
  911.  
  912.    Backspace
  913.         Delete the character to the left of the cursor and move left.  If
  914.         the cursor is on the first column of a line, the current line is
  915.         joined with the line above.  If in indent mode and the cursor is
  916.         on the first non-blank character, tde matches the indentation of
  917.         the previous line(s).
  918.  
  919.    Tab
  920.         If in insert mode, insert the appropriate number of spaces for a
  921.         tab and move the cursor left.  If in overwrite mode, just move
  922.         the cursor left w/o inserting text.
  923.  
  924.    @=
  925.         Duplicates the current line.
  926.  
  927.    @-
  928.         Deletes the text from the cursor to the end of line.
  929.  
  930.    ^Y
  931.         Deletes current line, cursor does not move.
  932.  
  933.    @D
  934.         Deletes current line, cursor does not move (exactly same as ^Y).
  935.  
  936.    @Y  or  ^U
  937.         Undelete the most recently deleted line.  The undelete buffer has
  938.         room for 10k of deleted text.  If more than 10k of text is
  939.         deleted, the oldest line(s) are pushed out before the new one is
  940.         added.  You may press ^U repeatedly to undelete all lines in the
  941.         buffer.
  942.  
  943.         Deleted lines from line delete, delete to end of line, word
  944.         delete, join line, and backspace are stored in the undelete
  945.         buffer.
  946.  
  947.    @A
  948.         Add a blank line below cursor.
  949.  
  950.    ^_  or Control underline
  951.         Split line at column of cursor.  If in indent mode, the split line
  952.         is autoindented.
  953.  
  954.    @J
  955.         Join the current line with the line below.
  956.  
  957.    ^Tab
  958.         Set tabs.
  959.  
  960.    ^]
  961.         Paren Balance.
  962.  
  963.    @1 - @3
  964.         Set a file marker.  Each file may have up to 3 markers.
  965.  
  966.    #@1 - #@3    (Shift+Alt+1 thru Shift+Alt+3)
  967.         Goto a previously defined file marker.
  968.  
  969.  
  970.    ^@  (Control+At sign -- not Control+Alt.  Control+At sign is the first
  971.           character in the ASCII character set, Control+2 on many keyboards)
  972.         Writes the current system date and time at the column of the
  973.         cursor.  Use tdecfg to set the desired year and time format.
  974.  
  975.    Control-Break
  976.         In tde, Control-Break will stop printing, sorting,
  977.         search/replacing, and recursive macros.
  978.  
  979.  
  980.  
  981. Toggles:
  982.  
  983.    ^F1
  984.         Toggle cursor sync.  Only cursor movement commands are synced.
  985.         Commands that change text are not synced.
  986.  
  987.    ^F2
  988.         Toggle eol display.  A special character is displayed in the
  989.         column of the actual new line.
  990.  
  991.    ^F3
  992.         Toggle writing <CR><LF> or <LF> at end of line.  tde will read a
  993.         text file with lines that end in either method; however, you may
  994.         want to write the file in a different method.  I think *nix
  995.         systems only want a <LF> of the end of line.
  996.  
  997.    ^F4
  998.         Toggle trimming trailing space at the end of line.  A 'T' is
  999.         displayed in the bottom right of the mode line to indicate
  1000.         trailing space is trimmed.
  1001.  
  1002.    ^F5 = Toggle search or sort case
  1003.         You can toggle the case flag at any time, even after you define
  1004.         the search pattern.
  1005.  
  1006.    Ins
  1007.         Toggle between insert and overwrite mode.
  1008.  
  1009.    @Tab
  1010.         Toggle smart tab mode.  Smart tab positions are determined by
  1011.         looking for the first, previous, non-blank line above the cursor
  1012.         and then positioning the cursor at the begining of the next or
  1013.         previous word from the column of the cursor.  It's useful for
  1014.         building tables and formatted data files.
  1015.  
  1016.    @I
  1017.         Toggle between indent and no indent mode.  In indent mode, tde
  1018.         searches for the first non-blank character on previous lines and
  1019.         places the cursor on that column when a carriage return is
  1020.         pressed.  When backspacing in indent mode, tde lines up the
  1021.         indentation with the first non-blank character of the previous
  1022.         line(s).
  1023.  
  1024.    @R - Toggle ruler
  1025.         Toggle display of ruler in all visible windows.
  1026.  
  1027.    @V - toggle word wrap
  1028.         Toggle word wrap between Off, Fixed Wrap, and Dynamic Wrap.
  1029.  
  1030.    @Z
  1031.         Toggle writing Control Z at the end of file.  Some programs may
  1032.         misbehave if a Control Z is not at the end of the file.
  1033.  
  1034.  
  1035.  
  1036. WordStar style commands:
  1037.  
  1038.   A limited number of WordStar style commands are implemented in tde.  I
  1039.   have no plans, whatsoever, to implement any additional WordStar style
  1040.   commands.  This implementation may not correspond exactly to the
  1041.   WordStar command convention.  WordStar is a trademark of WordStar
  1042.   International.
  1043.  
  1044.    ^A - word left
  1045.    ^B - format text
  1046.    ^C - screen down
  1047.    ^D - character right
  1048.    ^E - line up
  1049.    ^F - word right
  1050.    ^G - delete character
  1051.    ^H - backspace
  1052.    ^I - tab
  1053.    ^J - help
  1054.    ^K - n/a
  1055.    ^L - n/a
  1056.    ^M - return (carriage control, enter)
  1057.    ^N - add line below cursor
  1058.    ^O - n/a
  1059.    ^P - n/a
  1060.    ^Q - n/a
  1061.    ^R - page up
  1062.    ^S - character left
  1063.    ^T - word delete
  1064.    ^U - undelete line
  1065.    ^V - toggle insert mode
  1066.    ^W - scroll up line
  1067.    ^X - line down
  1068.    ^Y - delete line
  1069.    ^Z - scroll line down
  1070.    ^\ - redraw screen
  1071.  
  1072.  
  1073. Editor command summary:
  1074.  
  1075.    Function                      Description
  1076.  
  1077. Help                    Display instantaneous help screen
  1078. Rturn                   Insert newline and move down while matching indentation
  1079. NextLine                Move cursor to first character in next line
  1080. BegNextLine             Move cursor to first column in next line
  1081. LineDown                Move cursor down a line
  1082. LineUp                  Move cursor up a line
  1083. CharRight               Move cursor right one character
  1084. CharLeft                Move cursor left one character
  1085. ScrollRight             Pan screen one character right
  1086. ScrollLeft              Pan screen one character left
  1087. WordRight               Move cursor to beginning of next word
  1088. WordLeft                Move cursor to beginning of previous word
  1089. ScreenDown              Page screen down
  1090. ScreenUp                Page screen up
  1091. EndOfFile               Move to the last page in a file
  1092. TopOfFile               Move to the first page in a file
  1093. BotOfScreen             Move cursor to bottom of current window
  1094. TopOfScreen             Move cursor to top of current window
  1095. EndOfLine               Move cursor to end of line
  1096. BegOfLine               Move cursor to first character in line or column 1
  1097. JumpToLine              Move cursor to line entered by user
  1098. CenterWindow            Move cursor to center of current window
  1099. CenterLine              Move current line and cursor to center of window
  1100. HorizontalScreenRight   Page screen right
  1101. HorizontalScreenLeft    Page screen left
  1102. ScrollDnLine            Scroll screen down 1 line and cursor moves with line
  1103. ScrollUpLine            Scroll screen up 1 line and cursor moves with line
  1104. FixedScrollUp           Scroll screen up 1 line and cursor does not move
  1105. FixedScrollDn           Scroll screen down 1 line and cursor does not move
  1106. ToggleOverWrite         Toggle insert/overwrite mode and cursor changes shape
  1107. ToggleSmartTabs         Toggle smart tab mode on/off
  1108. ToggleIndent            Toggle indent mode on/off
  1109. ToggleWordWrap          Toggle word wrap on/off
  1110. ToggleCRLF              Toggle CRLF/LF at eol when writing file to disk
  1111. ToggleTrailing          Toggle trim trailing space at eol
  1112. ToggleZ                 Toggle writing ^Z at eof
  1113. ToggleEol               Toggle display of eol character
  1114. ToggleSync              Toggle cursor sync
  1115. ToggleRuler             Toggle ruler display
  1116. SetTabs                 Set file tabs
  1117. SetLeftMargin           Set left margin
  1118. SetRightMargin          Set right margin
  1119. SetParagraphMargin      Set paragraph margin
  1120. FormatParagraph         Format the entire paragraph according to margins
  1121. FormatText              Format from the cursor line to end of paragraph
  1122. LeftJustify             Left justify a line
  1123. RightJustify            Right justify a line
  1124. CenterJustify           Center justify a line
  1125. Tab                     Move cursor to next tab and add spaces if insert mode
  1126. BackTab                 Move cursor to previous tab and delete if insert mode
  1127. ParenBalance            Match (), {}, or [] under the cursor
  1128. BackSpace               Delete previous character
  1129. DeleteChar              Delete current character, but do not join lines
  1130. StreamDeleteChar        Delete current character and join lines if at eol
  1131. DeleteLine              Delete current line
  1132. DelEndOfLine            Delete from the cursor to the eol
  1133. WordDelete              Delete from the cursor to the end of word
  1134. AddLine                 Insert a blank line under the cursor
  1135. SplitLine               Split the current line at the cursor
  1136. JoinLine                Join next line with current line at the cursor
  1137. DuplicateLine           Duplicate the current line
  1138. AbortCommand            Abort editor functions
  1139. UndoLine                Get back the original contents of a line
  1140. UndoDelete              Get back up to the last 10k of deleted text
  1141. ToggleSearchCase        Toggle match/ignore search case or sort case
  1142. FindForward             Prompt for pattern and search forward
  1143. FindBackward            Prompt for pattern and search backward
  1144. RepeatFindForward1      Repeat find forward and adjust cursor if needed
  1145. RepeatFindForward2      Repeat find forward and do not adjust cursor
  1146. RepeatFindBackward1     Repeat find backward and adjust cursor if needed
  1147. RepeatFindBackward2     Repeat find backward and do not adjust cursor
  1148. ReplaceForward          Search and replace pattern forward
  1149. ReplaceBackward         Search and replace pattern backward
  1150. MarkBox                 Mark start or end of a box block
  1151. MarkLine                Mark start or end of a line block
  1152. MarkStream              Mark start or end of a stream block
  1153. UnMarkBlock             Unmark a block
  1154. FillBlock               Fill a box block with prompted character
  1155. NumberBlock             Fill a box block with starting number using increment
  1156. CopyBlock               Copy a block to cursor and unmark block
  1157. KopyBlock               Copy a block to cursor and leave block marked
  1158. MoveBlock               Move a block to cursor and unmark block
  1159. OverlayBlock            Overlay a box block
  1160. DeleteBlock             Delete a block
  1161. BlockToFile             Write a marked block to a file
  1162. PrintBlock              Print a block or file
  1163. BlockExpandTabs         Expand tabs in marked LINE block using tab setting
  1164. BlockTrimTrailing       Trim trailing space from all lines in a line block
  1165. BlockUpperCase          Convert all lower case in block to upper case
  1166. BlockLowerCase          Convert all upper case in block to lower case
  1167. BlockStripHiBit         Strip the high bit from all characters in block
  1168. SortBoxBlock            Sort line according to keys in box block
  1169. DateTimeStamp           Insert system time and date
  1170. EditFile                Editor prompts for file to edit
  1171. DirList                 List matching files in subdirectories
  1172. File                    Save file and quit window
  1173. Save                    Save file
  1174. SaveAs                  Save file under a new file name
  1175. SetFileAttributes       Set current file attributes
  1176. EditNextFile            Edit next file on command line
  1177. RedrawScreen            Redraw the screen
  1178. SizeWindow              Change size of current window
  1179. SplitHorizontal         Split current window horizontally
  1180. SplitVertical           Split current window vertically
  1181. NextWindow              Move to next window
  1182. PreviousWindow          Move to previous window
  1183. ZoomWindow              Make current window the maximum window size
  1184. NextHiddenWindow        Switch to next hidden window
  1185. SetMark1                Set a file marker
  1186. SetMark2
  1187. SetMark3
  1188. GotoMark1               Move cursor to previously defined marker
  1189. GotoMark2
  1190. GotoMark3
  1191. RecordMacro             Record keystrokes
  1192. PlayBack                Play back keystrokes
  1193. SaveMacro               Save macro to a file
  1194. LoadMacro               Load macro from a file
  1195. ClearAllMacros          Clear the macro buffer
  1196. Pause                   Pause a macro
  1197. Quit                    Quit current window and file and abandon changes
  1198.